home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacApp Release 10 / MacApp Release 10 - HD Ready / Examples / A-Z / Q / QuickTime / Simple QuickTime View / UQuickTime.h < prev   
Encoding:
Text File  |  1996-04-03  |  6.2 KB  |  261 lines  |  [TEXT/MPS ]

  1. //----------------------------------------------------------------------------------------
  2. // UQuickTime.h
  3. // Copyright © 1996 by Apple Computer, Inc. All rights reserved.
  4. // Based on a contribution by Steven Friedrich
  5. //----------------------------------------------------------------------------------------
  6.  
  7.  
  8. #ifndef __UQUICKTIME__
  9. #define __UQUICKTIME__
  10.  
  11. #ifndef __MOVIES__
  12. #include <Movies.h>
  13. #endif
  14.  
  15. //Forward Declarations
  16. class TMovieView;    
  17. class TMovieController;    
  18.  
  19.  
  20.  
  21. enum VariableMovieSize
  22. {
  23.     normalSize, halfSize, doubleSize
  24. };
  25.  
  26.  
  27. //----------------------------------------------------------------------------------------
  28. // TMovie
  29. //----------------------------------------------------------------------------------------
  30.  
  31. class TMovie : public TObject
  32. {
  33.     MA_DECLARE_CLASS;
  34.  
  35. public:
  36.  
  37.     TMovie();
  38.  
  39.     virtual ~TMovie();
  40.  
  41.     virtual void IMovie(TFile* file);
  42.  
  43.     virtual void SetBox(const CRect& itsBox);
  44.  
  45.     virtual OSErr PutOnScrap(long movieScrapFlags);
  46.  
  47.     virtual void Start();
  48.  
  49.     virtual void Stop();
  50.  
  51.     virtual void SetPlayEveryFrame(Boolean playEveryFrame);
  52.  
  53.     virtual PicHandle GetPoster() const;
  54.  
  55.     virtual TimeValue GetDuration() const;
  56.  
  57.     CRect GetBox() const;
  58.  
  59.     CRect GetOriginalBox() const;
  60.  
  61.     inline Movie GetMovie() const
  62.     { return fMovie; }
  63.  
  64.     virtual Boolean IsPlaying() const;
  65.  
  66.     virtual Boolean IsDone() const;
  67.  
  68. protected:
  69.     CRect fOriginalBox;
  70.     Movie fMovie;
  71.     Boolean fPlayEveryFrame;
  72. };
  73.  
  74. //----------------------------------------------------------------------------------------
  75. // TMovieViewIdler
  76. //----------------------------------------------------------------------------------------
  77. class TMovieViewIdler : public TEventHandler
  78. {
  79.     MA_DECLARE_CLASS;
  80.  
  81. public:
  82.     TMovieViewIdler();
  83.  
  84.     virtual void IMovieViewIdler(TMovieView* itsMovieView);
  85.  
  86.     virtual Boolean DoIdle(IdlePhase phase);// Override
  87.  
  88. protected:
  89.     TMovieView* fMovieView;
  90. };
  91.  
  92. //----------------------------------------------------------------------------------------
  93. // TMovieViewIdler
  94. //----------------------------------------------------------------------------------------
  95. class TMovieView : public TView
  96. {
  97.     MA_DECLARE_CLASS;
  98.  
  99. public:
  100.  
  101.     TMovieView();
  102.  
  103.     ~TMovieView();
  104.  
  105.     virtual void DoPostCreate(TDocument* itsDocument);
  106.  
  107.     virtual void HaveMovie(TMovie* movie);
  108.  
  109.     virtual void DoMouseCommand(VPoint& theMouse,
  110.                                        TToolboxEvent* event,
  111.                                        CPoint hysteresis);// Override
  112.  
  113.     virtual void BeInPort(GrafPtr itsPort);// Override
  114.  
  115.     virtual void Draw(const VRect& area);// Override
  116.  
  117.     virtual Boolean Focus();                // Override
  118.  
  119.     virtual void Activate(Boolean entering);// Override
  120.  
  121.     virtual void HaveMovieController(TMovieController* itsMovieController);
  122.  
  123.     virtual void SetFrame(const VRect& newFrame,Boolean invalidate);
  124.  
  125.     virtual void InvalidateMovieClip();
  126.  
  127.     virtual void EnsureMovieClipIsValid();
  128.  
  129.     virtual Boolean SetIdleIfMoviePlaying();
  130.  
  131.     virtual Boolean IdleMovies();
  132.  
  133.     virtual Boolean IsActive();            // Override
  134.  
  135.     virtual void InvalidateCoordinates();    // Override
  136.  
  137.     virtual void ComputeFrame(VRect& newFrame);    // Override
  138.  
  139.     virtual void AdjustOffsetsForController();
  140.  
  141.     virtual void SetLoop(Boolean loop);
  142.  
  143.     virtual void SetMovieSize(VariableMovieSize newSizeH, VariableMovieSize newSizeV);
  144.  
  145.     virtual Boolean SetPlayWhenInactive(Boolean shouldPlay);
  146.  
  147.     virtual void DoMenuCommand(CommandNumber aCommandNumber);// override 
  148.  
  149.     inline TMovie* GetMovie() const
  150.     { return fMovie; }
  151.     
  152.     virtual Boolean HasMovie() const;
  153.  
  154.     virtual Boolean IsPlaying() const;
  155.  
  156. public:
  157.     VariableMovieSize fMovieSize[2];            // How this movie's size is to be
  158.                                                 // determined when the SizeDeterminer
  159.                                                 // is sizeVariable
  160.     Boolean fPlayWhenInactive;
  161.     Boolean fLoop;
  162.     Boolean fAutoRewind;
  163.  
  164. protected:
  165.     IDType fMovieControllerIdentifier;
  166.     TMovie* fMovie;
  167.     TMovieController* fMovieController;
  168.     TMovieViewIdler* fIdler;
  169.     Boolean fWasPlaying;
  170.     Boolean fIsActive;
  171.     Boolean fMovieClipIsValid;                    // set to FALSE whenever the view's geometry changes
  172.  
  173. };
  174.  
  175. //----------------------------------------------------------------------------------------
  176. // TMovieController
  177. //----------------------------------------------------------------------------------------
  178. class TMovieController : public TView
  179. {
  180.     MA_DECLARE_CLASS;
  181.  
  182. public:
  183.  
  184.     TMovieController();
  185.  
  186.     ~TMovieController();
  187.  
  188.     virtual void DoPostCreate(TDocument* itsDocument);
  189.  
  190.     virtual void SetFrame(const VRect& newFrame,
  191.                                  Boolean invalidate);
  192.     virtual void Show(Boolean state,
  193.                              Boolean redraw);
  194.  
  195.     virtual void BeInPort(GrafPtr itsPort);// Override
  196.  
  197.     virtual void DoEvent(EventNumber eventNumber,
  198.                                 TEventHandler* source,
  199.                                 TEvent* event);    // Override
  200.  
  201.     virtual void DoMouseCommand(VPoint& theMouse,
  202.                                        TToolboxEvent* event,
  203.                                        CPoint hysteresis);// Override
  204.  
  205.     virtual void DoKeyEvent(TToolboxEvent* event);// Override
  206.  
  207.     virtual void DoCommandKeyEvent(TToolboxEvent* event);// Override
  208.  
  209.     virtual void Draw(const VRect& area);// Override
  210.  
  211.     virtual Boolean Focus();                // Override
  212.  
  213.     virtual void Activate(Boolean entering);// Override
  214.  
  215.     virtual void SetActive(Boolean state);// Override
  216.  
  217.     virtual void AttachMovieView(TMovieView* itsMovieView);
  218.  
  219.     virtual Boolean SetIdleIfMoviePlaying();
  220.  
  221.     virtual void HaveMovie(TMovie* movie);
  222.  
  223.     inline MovieController GetController()
  224.     { return fMovieController; }
  225.  
  226.     virtual void IdleMovies();
  227.  
  228.     virtual Boolean IsActive();            // Override
  229.  
  230.     virtual void MovieChangedFrame(const VRect& newFrame,
  231.                                  Boolean invalidate);
  232.  
  233.     virtual void InvalidateCoordinates();    // Override
  234.  
  235.     virtual void SetAutoSizeToMovie(Boolean autoSize);    // Override
  236.     virtual void SetPlayEveryFrame(Boolean playEveryFrame);
  237.     virtual void ComputeFrame(VRect& newFrame);    // Override
  238.     virtual void DoSetupMenus();            // override 
  239.     virtual void DoMenuCommand(CommandNumber aCommandNumber);// override 
  240.  
  241.     virtual Boolean IsPlaying() const;
  242.  
  243. protected:
  244.     MovieController fMovieController;
  245.     TMovieView* fMovieView;
  246.     Boolean fIsActive;
  247.     Boolean fPlayEveryFrame;                    // TRUE to force every frame to play
  248.     Boolean fAutoSizeToMovie;                    // TRUE to make the controller stick to the bottom of the movie
  249. };
  250.  
  251. //----------------------------------------------------------------------------------------
  252. // Global initialization procedure
  253. //----------------------------------------------------------------------------------------
  254. void InitUQuickTime();
  255.     // Call this routine at initialization time
  256.  
  257.  
  258. #endif //quicktime
  259.  
  260.  
  261.